package com.ruoyi.workflow.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.flowable.FlowableServiceUrl;
import com.ruoyi.common.rest.RestTemplateUtil;
import com.ruoyi.workflow.domain.Model;
import com.ruoyi.workflow.service.IModelService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

/**
 * 模型管理Service业务层处理
 *
 * @author yuanpingfang
 * @date 2021-04-08
 */
@Service
public class ModelServiceImpl extends RestTemplateUtil implements IModelService {
    private static final Logger log = LoggerFactory.getLogger(ModelServiceImpl.class);

    @Autowired
    private FlowableServiceUrl flowableServiceUrl;

    /**
     * 查询模型管理
     *
     * @param id 模型管理ID
     * @return 模型管理
     */
    @Override
    public Model selectModelById(String id) {
        return null;
    }

    /**
     * 查询模型管理列表
     *
     * @param model 模型管理
     * @return 模型管理
     */
    @Override
    public Map<String, Object> selectModelList(Model model) {
        //get请求
        JSONObject json = get(flowableServiceUrl.getModels());
        Map<String, Object> map = new HashMap<>();
        map.put("total", json.getIntValue("total"));
        map.put("rows", json.getJSONArray("data"));
        return map;
    }

    /**
     * 新增模型管理
     *
     * @param model 模型管理
     * @return 结果
     */
    @Override
    public int insertModel(Model model) {
        return 0;
    }

    /**
     * 修改模型管理
     *
     * @param model 模型管理
     * @return 结果
     */
    @Override
    public int updateModel(Model model) {
        return 0;
    }

    /**
     * 批量删除模型管理
     *
     * @param ids 需要删除的模型管理ID
     * @return 结果
     */
    @Override
    public int deleteModelByIds(String[] ids) {
        return 0;
    }

    /**
     * 删除模型管理信息
     *
     * @param id 模型管理ID
     * @return 结果
     */
    @Override
    public int deleteModelById(String id) {
        return 0;
    }

    /**
     * 部署模型管理信息
     *
     * @param id 模型管理ID
     * @return 结果
     */
    @Override
    public int deploy(String id) {
        //post请求
        Map<String, Object> params = new HashMap<>();
        params.put("modelId", id);
        Map<String,Object> returnMap = doPost(flowableServiceUrl.getDeployProcessByModel(), params);
        if (Integer.parseInt(returnMap.get("code").toString()) == 200) {
            return 1;
        }
        return 0;
    }
}
